#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

typedef long long LL;

const int N = 20;

LL a[N];
int ans = N;
LL truck[N];
vector<int> path;
LL n, w;
bool st[N];

bool cmp(int x, int y)
{
	return x > y;
}

void dfs(int pos, int cnt)
{
	if(cnt >= ans) return;
	if(pos > n)
	{
		ans = min(ans, cnt);
		return;
	}
	for(int i = 1; i <= cnt; i++)
	{
		if(truck[i] + a[pos] > w)
		{
			truck[cnt + 1] += a[pos];
			dfs(pos + 1, cnt + 1);
			truck[cnt + 1] -= a[pos];
		}
		else
		{
			
			truck[i] += a[pos];
			dfs(pos + 1, cnt);
			truck[i] -= a[pos]; 
			
		}
	}
//	truck[cnt + 1] += a[pos];
//	dfs(pos + 1, cnt + 1);
//	truck[cnt + 1] -= a[pos];
}

int main()
{
	cin >> n >> w;
	for (int i = 1; i <= n; i++) cin >> a[i];
	
	sort(a + 1, a + 1 + n, cmp);
	
	dfs(1, 1);
	
	cout << ans * 100 << endl;

	return 0;
}
